home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fritz: All Fritz
/
All Fritz.zip
/
All Fritz
/
FILES
/
UTILREEN
/
DMP200.LZH
/
DMP.DOC
< prev
next >
Wrap
Text File
|
1989-02-10
|
84KB
|
2,101 lines
* DMP *
Printer driver/spooler for IBM PCs and compatibles.
Revision 2.00
Copyright(c) 1989 DMP software. All rights reserved.
This documentation updated 10 Feb. 1989
_______
____|__ | (TM)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER
DMP Software
1223 Wilshire Blvd., Suite 199
Santa Monica, CA 90403
The following Trademarks are used throughout this documentation:
PostScript - Adobe Systems, Inc.
IBM - International Business Machines Corporation.
Microsoft - Microsoft Corporation.
MS-DOS - Microsoft Corporation.
TABLE OF CONTENTS
Introduction. . . . . . . . . . 1
User Supported Software. . . . . . . . 1
LaserZ. . . . . . . . . . . 2
Contents of the DMP.ARC file. . . . . . . 2
How to use this documentation. . . . . . 2
Starting DMP - basic options & examples. . . . 3
Saving your configuration. . . . . . . 4
FREQUENTLY USED COMMANDS - examples. . . . . . 4
File print utility - PF. . . . . . . . 6
OUTPUT SELECTION. . . . . . . . . 6
Printer connected to a parallel port. . . . 7
Printer connected to a serial port. . . . 7
Printer output redirected to a disk file. . . 9
MEMORY AND DISK SPOOLING. . . . . . . 10
Simplified memory diagram. . . . . . 11
Changing the internal buffer size. . . . . 12
Spooling to expanded memory. . . . . . 12
Spooling to extended memory. . . . . . 13
Extended memory - no XMM driver. . . . . 13
Extended memory with the XMM driver
-the XMBLOCK program. . . . . . 14
HMA memory spooling. . . . . . . 15
Spooling to disk. . . . . . . . 15
Combination memory and disk spooling
- more examples. . . . . . . 16
DRIVER CONTROL COMMANDS AND OPTIONS. . . . . 18
Printer control. . . . . . . . 19
Character strings in commands. . . . . 22
Character conversions. . . . . . . 22
Spooler control. . . . . . . . . 25
Miscellaneous. . . . . . . . . . 26
Using the environment variable. . . . . . 26
Using the configuration file. . . . . . . 26
DMP and Word Processors. . . . . . . . 27
Technical description.. . . . . . . . 28
How commands are interpreted. . . . . . 28
Details of program operation. . . . . . 28
Command summary chart. . . . . . . . 30
Registration and Ordering. . . . . . . 31
DMP 2.00 - page 1.
INTRODUCTION
DMP is a general purpose printer controller including very
versatile spooling capability. It works on IBM PC/XT/AT and PS/2
computers and most compatibles, running under PC-DOS or MS-DOS
versions 2.0 thru 3.3.
Some of DMP's major features are:
-Print to disk file option
-Support for serial port printers
-Spooling to any Dos-recognized disk
-Spooling to all common types of memory
-Selectable internal buffer size / system memory usage
-The ability to drive a wide range of printers at full speed.
DMP is a true spooler in that it saves the printer output to non-
system memory or to disk as needed, instead of removing a large buffer
from system memory.
DMP is a memory resident program which uses approximately 13K bytes
of system memory. The program is not compatible with the DOS 'PRINT'
utility, or with any other print spoolers or buffers which drive
printer no. 1. If you use DMP for a serial port printer, you must not
use the DOS "MODE" command to redirect output - DMP does it instead.
DMP has been used with MS-DOS and PC-DOS versions 2.0 thru 3.3 and
with numerous 'TSR' programs, with no compatibility problems except as
noted.
The program disk also includes the utility "PF" for printing files
from a disk without using the DOS 'COPY' command. PF is described in
detail below. The syntax for PF is: "PF filespec, filespec,..." The
filespecs use the DOS file and directory conventions, and may include
wildcards, ? and *.
USER SUPPORTED SOFTWARE
This program is copyrighted material for personal use. If you
would like to continue to use the program after a reasonable
evaluation period, send a check for $18 to:
Terry McGuire
DMP Software
1223 Wilshire Blvd., Suite 199
Santa Monica, CA 90403
You may use the registration form at the end of the documentation
if you like. The form contains information about another way to
register, and details about quantity pricing. If you don't use the
form, please make sure your name and address are included on your
check.
The previous version of DMP was $15 plus $3 shipping. When you
register this version you will receive a diskette with the latest
DMP 2.00 - page 2.
program available. This is intended to keep the price the same as
the prior version and eliminate some confusion.
Anyone desiring to use this program on more than one computer must
purchase additonal copies or fill out and return the registration form
at the end of this documentation for the number of copies needed.
Making copies of DMP for others or placement on electronic bulletin
boards is allowed and encouraged, as long as the programs and documen-
tation are transferred in their entirety, with no modifications. If
you would like to post DMP on your favorite BBS, please use the
DMP.ARC file as you received it.
LaserZ
LaserZ is available seperately from DMP software for $29 plus $3
shipping. LaserZ is a printer driver / spooler based on DMP that also
includes output for PostScript printers. It allows you to print
normal text files and output from DOS programs on PostScript printers.
LaserZ includes emulation of other printers, selection of different
fonts and type sizes, PostScript output for the "Print-Screen"
function, and a number of other features. A complete, printed manual
is included. If you have a PostScript printer you can order LaserZ
with the order form at the end of this documentation.
CONTENTS OF THE DMP.ARC FILE
The DMP program incudes these files:
1.) DMP.COM; The main program.
2.) DMP.DOC; This documentation.
3.) PF.COM; 'Print Files' utility, described below.
4.) XMBLOCK.COM; Utility program to allow use of DMP with an XMM
driver and an extended memory ramdisk.
HOW TO USE THIS DOCUMENTATION
This documentation is quite lengthy, and is best used as a refer-
ence rather than a tutorial. The two sections above are important, as
well as the next few small sections on start-up, saving the config-
uration, and frequently used commands.
The rest of the documentation describes the commands and options in
detail, and gives a technical description of how the program works.
Read the start-up section below, and anything else that interests you.
It is usually best to get the program printing something, then decide
which other features you might like and try them out.
Commands are shown on a seperate line or in quotes, with optional
parameters in brackets. They should be entered exactly as shown,
except that they are not case sensitive. All commands are a right
slash "/" followed by the command and other options. Spaces are not
DMP 2.00 - page 3.
allowed between the slash and the command name, and commands are
seperated by any number of spaces.
STARTING DMP - basic options & examples
DMP has a large number of options, and there are default settings
for all of them. The commands for all the options are detailed in
later sections. Only the very basic startup commands are given here.
For most printers, the basics are all you will need!
There are two important things you will want to tell DMP about your
system. First is where to find your printer. Second is where to
spool the data for the printer.
You specify the connection to the printer with the "/B" command for
a parallel printer, with an optional port number after the B, or the
"/SC" command for a serial printer - the port number is needed here.
For a serial printer, you should also specify the bit rate and
"handshake" signal, as shown in the examples below.
You tell DMP where to spool the data with one or more "/MX"
commands for memory spooling or a "/Dx:" command for disk spooling.
The "/MX" commands are:
"/MX:nn" to set the internal buffer size to 'nn' Kbytes,
"/MXP" for expanded (LIM) memory,
"/MXT" for extended memory as found on IBM ATs and many other 80286
computers,
"/MXT xxx yyy" also for extended memory, to specify the maximum
amount (xxx) and starting place (yyy) in the extended memory,
"/MXAll" for both expanded and extended memory, and
"/MXAll xxx yyy" to use both expanded and extended and also specify
the maximum and start for extended memory as in "/MXT".
The disk command, as mentioned above, is "/Dx:". You need the colon,
and replace the "x" with the DOS drive letter you want to use.
Startup Example 1:
Printer on BIOS default parallel port, spool to ramdisk D:
DMP /DD:
Startup Example 2:
Printer on parallel port 1, spool to extended memory above a VDisk
at 1.5MB and to the VDisk itself as drive D:
DMP /B1 /DD: /MXT 0 512
Startup Example 3:
Printer on serial port COM1 at 1200bps, using DSR handshake. Spool
to expanded memory and hard disk C:
DMP /SC1 R1200 WDSR /MXP /DC:
The commands in these examples can be entered in any order. You
can also change the configuration of DMP at any time by entering new
commands.
DMP 2.00 - page 4.
Like all the options, these basic ones have defaults. The printer
default is the Bios parallel port The spooling default is to use the
internal 6K byte buffer only. If you install DMP with no commands, it
will try to drive your printer this way. (It will display a warning
for no spool buffers, but still work.) If you specify a serial port
with "/SCn" with no other options, the default is 2400bps and CTS
handshake.
SAVING YOUR CONFIGURATION
After you have entered a command string similar to one of the
above, and printed a page or two using DMP, save the configuration to
disk with the command "DMP /WCF". (It stands for "Write Configuration
File".) From now on you can install the program with no commands, and
your previous option settings will be used. When it starts up, DMP
displays a summary of it's configuration so you can verify that your
option settings are correct.
When you enter this command, DMP writes a file named "DMP.CFG" to
the drive and directory where DMP itself is found (current directory
under DOS 2). This file contains all the options that you have
selected, including the ones not yet explained here. When DMP is
installed it finds this file and uses the settings in it.
A seperate section at the end of this documentation describes what
is saved in the configuration file and how to use it.
A word of caution: If you move DMP to another computer, it is best
to delete the DMP.CFG file and set up the options from scratch on the
new system, unless the computer and printer configurations are
completely identical.
FREQUENTLY USED COMMANDS - EXAMPLES
These examples are shown with very little explanation. They show
some of the capabilities of DMP, and should give you some ideas for
which features you want to try out. Detailed descriptions for all the
commands are in the sections following.
Example 1: Parallel printer, text only, spool to hard disk C:,
simulate form feeds with line feeds, expand tabs, skip perforation.
Load spooler:
DMP /DC:/F-/T+/V65
Allow graphics printing temporary, i.e. don't convert tab and form-
feed characters:
DMP /G+
Re-enable character conversion features:
DMP /G-
DMP 2.00 - page 5.
Example 2: DMP is already installed for a parallel printer.
Kill spooler output and empty buffers (e.g. paper jam):
DMP /SK
Print files ABC.TXT and all files with extension .DOC in directory
\docs on drive C:
PF C:\DOCS\ABC.TXT C:\DOCS\*.DOC
Send printer output to file PRINTOUT.TXT in the current directory:
DMP /PFPRINTOUT.TXT
Send output back to parallel printer:
DMP /B
Suspend spooler output:
DMP /S-
(Data continues spooling, printer stops.)
Restart spooler output:
DMP /S+
Example 3: Parallel printer connected as LPT1:, text only, spool to
ramdisk D:, send sequence 'Esc&k0S' to reset printer on startup.
(You've checked the printer manual!) Prevent character ^U from being
sent to printer.
Load spooler:
DMP /DD: /B1 /C27,"&k0S"/X15-
Example 4: Serial printer connected to COM1, text only, 1200bps,
printer busy signal connected to DSR line, spool to hard disk C:.
Load spooler:
DMP /DC: /SC1R1200WDSR
Printer output to disk file DATA.123 on drive A:, append output to
existing file:
DMP /AFA:\DATA.123
Change output to parallel printer and spool to ramdisk. (No data
spooled for printing.):
DMP /DD:/B
Switch back to serial printer, leave spooling set to ramdisk:
DMP /SC1R1200WDSR
You will probably need to read more details about these commands in
some cases, especially if you have a serial port printer with param-
eters other than those shown, if you have an 80286 (or later) CPU and
you want to use combinations of different types of memory, or if you
want to enter some complex character conversions.
DMP 2.00 - page 6.
FILE PRINT UTILITY - PF
The utility program PF.COM is intended for printing disk files
directly, from the DOS prompt. It is used by entering PF followed by
the names of the files to be printed. PF accepts full DOS path spec-
ifications as well as the DOS wildcard specifiers * and ? for printing
groups of files. PF is useful for printing files output by word
processors, compilers, data base programs, etc. that are in 'ready to
print' form, plus the "documentation on disk" that comes with many
programs.
The PF program can also be used for later printing of files that
were generated by the "Print-to-disk" option. PF does no conversion
itself, and may be used with or without DMP installed. It's intent,
however, is to spool data for printing with DMP, then allow the
computer to be used for other purposes while the printing takes place.
Please do not confuse this separate utility with the DMP command
"DMP /PF" for directing printer output to a disk file.
OUTPUT SELECTION
The spooler output can be sent to a parallel port, a serial port,
or a disk file. The next three sections tell you how.
DMP 2.00 - page 7.
PRINTER CONNECTED TO A PARALLEL PORT.
There are four parallel port selection commands:
DMP /B BIOS designated printer (default)
DMP /B0 Printer output goes to port 0, 1 or 2.
DMP /B1
DMP /B2
The ports are defined as:
Port #0 - I/O addresses 378-37F hex - The one on the motherboard or
on the 1st multi-function board (often).
Port #1 - I/O addresses 3B8-3BF hex - The one on a mono or mono-
graphics adaptor. The one on a multi-function board (sometimes).
Port #2 - I/O addresses 278-27F hex - The 2nd one on a multi-
function or other option board.
The "/B" command can be entered at any time. It has several important
effects:
-If serial port output was on, it is turned off.
-If Print-to-File was on, the file is closed.
-Character conversions are turned on in the last mode selected.
A confirmation is displayed for the parallel port selected. When
you save the configuration with the "/WCF" command, the parallel port
selection is saved with the rest of the parameters.
This command is also useful for switching output between two
parallel printers.
If you don't enter any "/B" command, or enter a "/B" command
without a number DMP checks for a printer port designation in the BIOS
data area. Once a parallel port is selected, the "/B" command with no
number will cause output to go to the selected port. Entering a
number after a "/B" will force printer output to the selected port
regardless of the BIOS information.
See the discussion in the technical description section if you are
interested in more details about parallel ports.
PRINTER CONNECTED TO A SERIAL PORT.
There are just two basic commands for a serial port: "DMP /SC1" and
"DMP /SC2" for ports COM1 and COM2.
These commands can be followed by "R" or "W" commands to select the
bit rate and hardware handshake signal. The full syntax for the "/SC"
command is: "DMP /SCn [Rxxx] [Wyyy]". The items in brackets are
optional. Do not type the brackets. 'n' is the port number. 'xxx'
is the bit rate in bps, from 300 to 19200. 'yyy' is the handshake
signal to use, selected from CTS, DCD, DSR, or RI. Control via
XOn/XOff is always enabled, in case the printer uses it.
DMP 2.00 - page 8.
This command may be entered at any time. The effects are as follows:
-If parallel port output was on, it is turned off.
-If Print-to-File was on, the file is closed.
-Character conversions are turned on in the last mode selected.
-A confirmation is displayed for the port selected, bit rate,
handshake signal, and type of conversion now in effect.
Note that the printer must NOT be redirected with the DOS 'MODE'
command or any other software. Use the '/SC' or '/B' commands if you
want to switch between serial and parallel printers.
The port number must be specified when the command is first
entered. The rate and handshake signal default to 2400bps and CTS,
respectively. Once the parameters have been selected, or loaded from
the configuration file, you can switch the serial port on with just
DMP /SC. The previously selected parameters are used.
The optional "R" parameter sets the bit rate. Do not enter any "/"
or "[" between the port select and 'R'. This parameter may be changed
after the serial printer has been selected.
The optional 'W' parameter selects the serial port signal to be
used as the printer 'busy' signal. The selected signal should be
connected to the printer output signal for stopping serial input. The
signal designations and pin numbers for a 25-pin (PC/XT) and 9-pin
(AT) connectors are as follows:
Computer connector: 25pin 9pin
CTS - Clear to send - pin 5 pin 8
DCD - Carrier detect - pin 8 pin 1
DSR - Data set ready - pin 6 pin 6
RI - Ring indicator - pin 22 pin 9
DMP also includes pacing via 'XOn/XOff' from the printer. This
function cannot be disabled. If the printer does not use it, this
will have no effect. If the printer does send 'XOff' characters to
control output, a hardware pacing signal may still be selected. The
hardware signal should be disabled on the connector (either end) if it
is desired to use only the 'XOn/XOff' control. If the output to the
printer is stopped by 'XOff', it will restart when the printer sends
an 'XOn'. DMP also times out the XOff status to allow for some
printers that do not properly restart transmission with 'XOn'.
Examples:
Select COM1, 2400bps, 8data, no parity, 1 stop bit, CTS handshake:
DMP /SC1 R2400 WCTS
Select COM2, DCD handshake. Other parameters as is:
DMP /SC2WDCD
DMP 2.00 - page 9.
PRINTER OUTPUT REDIRECTED TO A DISK FILE.
The three commands for sending printer output to a disk file are:
DMP /PFfilespec,
DMP /AFfilespec, and
DMP /OFfilespec
The command names stand for "Print File", "Append File" and
"Overwrite File". If the given file does not exist, all three will
operate identically. The file will be created and subsequent printer
output will go to the file.
If the file already exists, the commands operate as follows. The
"/PF..." command will find the file, and ask if you want to append,
overwrite or cancel the command. The "/AF" and "/OF" commands will
append or overwrite the file without asking. A confirmation message
is displayed.
This command allows only two possibilities for specifying the
filename. The first is a filename only, with no drive or directory
specifiers, such as "OUTPUT.PTR". This causes the file to be created
(or appended to) in the drive/directory that is current when the
command is entered. The second method is full path and filename,
starting from the root directory of any DOS recognized drive, like
"A:\DOC.TXT". Note that the backslash must be used to specify the
root directory of a drive (unless it is the current directory).
A:\DOS.TXT is correct. A:DOC.TXT is NOT correct and will generate an
error message.
The file that is being printed to does not have to be on the same
disk that is used for the spool files while printing to the printer.
Character conversions are turned off while printing to a disk file.
This command is cancelled by the "/B" or "/SC" commands to direct
output back to the serial or parallel printer. It may also be
cancelled by '/PF-'. This will cause printer output to go back to the
printer port that was in use before the Print-to-disk function was
started.
If the "Print-to-disk" function is enabled while there is data
spooled to be printed, the spooled data will continue to print until
it is finished or the spooler is aborted by command. Any additional
data that is sent from a running program or from DOS to the printer
after "Print-to-disk" is started will go to the disk file.
Please do not confuse this command with the separate utility "PF".
This command is for sending printer data to a disk file. The PF
utility is for sending an existing file to the printer.
DMP 2.00 - page 10.
Print-to-file examples:
DMP /PFC:\DOCS\PRINTOUT.TXT - Printer output goes to file
"printout.txt" in directory "docs" on drive C until cancelled.
DMP /OFPRTEXT - Printer output goes to file "prtext" in the
current directory. If the file exists it is erased and re-written.
DMP /B - If printer output had been set to a file, it is
directed to the parallel port. The file is closed.
MEMORY AND DISK SPOOLING
The memory spooling commands are:
DMP /MX:nn to set the internal buffer size,
DMP /MXP for expanded memory,
DMP /MXT [xxx] [yyy] for extended memory,
DMP /MXAll [xxx] [yyy] for both, and
DMP /MXNone to stop using memory buffers after they had been
enabled.
The memory spooling parameters can also be set by using the DOS
environment variable if desired. This is discussed in the section on
environment variables.
The disk spooling command is:
DMP /Dx: where x is the DOS disk to be used for spooling.
The disk spooling command also responds to the "/Dx:nn" command to
set the internal buffer size. This was included for compatibility
with earlier versions of DMP. The preferred method is to use the
"/MX:nn" command, since it permits you to change the buffer size
without specifying a disk.
The memory diagram on the next page should help clarify some of the
terms in the command descriptions.
DMP 2.00 - page 11.
+-----------------------------------------------------+
| ** Expanded memory ( up to 8 MB ) |
+-----------------------------------------------------+
| Top of Memory on 80286 + | Up to 16MB
| |
| ** |
|.....................................................|
| ** |
| |
| Possible XMM Extended Memory Block |
|.....................................................|
|.....................................................|
| |
| |
| |
| Possible configurable Ramdisk begin. |
|-----------------------------------------------------| 1088K
| ** |
| The High Memory Area (HMA) |
| |
| | /\ /\ |
| Begin extended mem. Possible VDISK | 80286 + only |
|====================================================|1024K or 1MB
| End reserved area. Top of mem on 8088 PCs |
| System Bios |
| ................................................|
| ................................................|
| Network adaptor firmware |
| ................................................|
| ................................................|
| Disk adaptor firmware |
| ................................................|
| ................................................|
| EMS page frame |
| ................................................|
| ................................................|
| Video adaptor display mem & firmware |
| ................................................|
| Begin reserved area. |
|-----------------------------------------------------| 640K
| |
| |
| |
| Conventional or DOS Memory |
| |
| |
| |
|.....................................................|
| Interrupt vectors, Bios data, Dos, Tsr's, etc. |
+-----------------------------------------------------+ 0K
Figure 1. Simplified memory diagram.
The ares marked with ** can be used for spooling.
DMP 2.00 - page 12.
CHANGING THE INTERNAL BUFFER SIZE
The default internal buffer size is 6K bytes. You can change it,
during installation of the program only, with the "DMP /MX:nn"
command. 'nn' is the size to use in Kbytes (1024 byte chunks), and
must be one of the following numbers:
4, 8, 12, 16, 24, 32, or 40.
It is normally not necessary to change the buffer size. A larger
buffer may help if you do not have any expanded or extended memory to
use for spooling, and you must use a physical disk (not a ramdisk).
There is almost no effect on performance of the spooler when using
memory buffers. The larger buffer will of course cause more DOS
memory to be used by the spooler.
SPOOLING TO EXPANDED MEMORY
Simply install the program with "DMP /MXP". DMP will verify the
presence of an EMM manager with at least 64K available for spooling.
The EMS memory use and amount available are shown on the summary
display. The memory is allocated thru the EMM manager when needed,
and released when done. None is reserved permanently.
-- Example --
In CONFIG.SYS:
...
DEVICE = EMM.SYS (name of your EMM manager)
...
In AUTOEXEC.BAT, or enter from the DOS prompt:
DMP /MXP /other options as desired.
Expanded memory is memory that is "bank switched" in and out of the
PC's address space as needed. This type of memory can be added to any
type of DOS computer, including 8088 based PCs. An EMM driver is a
program that manages expanded memory. This program is usually
supplied when you buy an expanded memory board.
DMP will work with an EMM manager supporting LIM 3.20 or later.
Use of expanded memory can be turned on at any time with "DMP /MXP",
and stopped at any time with "DMP /MXNone". If the memory is being
used by the spooler when it is turned off, the data will continue to
print until finished, but no new data will be added to EMM memory.
Expanded memory is supported by many commercial programs via the
EMM driver. It is a good place for spooling because it can be
accessed quickly, and it is allocated and de-allocated as needed,
allowing maximum use of the memory.
DMP 2.00 - page 13.
SPOOLING TO EXTENDED MEMORY
Extended memory is memory above the 1 MB address range. It is
available only on 80286 or later CPUs, which are capable of addressing
memory in this range. Under DOS, the only standard use of this memory
is for a ramdisk. Some commercial programs support it, but very few
compared to those that support expanded memory.
There are also some driver programs available that simulate
extended memory with expanded memory. A reason for doing this would
be to put the memory in one larger piece for use by a ramdisk or other
program. DMP is compatible with such programs, since DMP uses the
system Bios or the XMM driver to access extended memory. The sim-
ulator program goes "below" DMP and the XMM driver.
EXTENDED MEMORY - NO XMM DRIVER.
Install the program with "DMP /MXT [xxx] [yyy]".
[xxx] is the maximum amount of memory that the spooler is allowed to
use. [yyy] is the start address ABOVE 1MB. Do not type the brackets.
Both xxx and yyy represent numbers in Kbytes.
If no parameters are specified DMP will use all memory as reported
by the Bios. If the first parameter is zero or is greater than the
amount available, DMP will use the amount available.
This format is intended to be compatible with the VDISK program, or
to allow all extended memory to be used for spooling (no ramdisk).
-- Example --
You have an 80286 machine with 2 MB total memory, all conventional.
You would like to use 640K for DOS, 1MB for ramdisk, 384K for
spooling.
In CONFIG.SYS:
...
DEVICE = VDISK.SYS 1024 512 128 /E
...
In AUTOEXEC.BAT, or enter from the DOS prompt:
DMP /MXT 384 1024 / other options as desired.
The most important point in this example is that the spooler is
told to start at 1024K above 1MB - which is where the VDISK stops.
The first parameter to DMP (384 in the example) could have been a
zero, or a number greater than 384 to acheive the same result.
Use of extended memory can be turned on at any time with
"DMP /MXT", and stopped at any time with "DMP /MXNone". If the memory
is being used by the spooler when it is turned off, the data will
continue to print until finished, but no new data will be added to
extended memory. You can only change the amount and start parameters
DMP 2.00 - page 14.
by using "DMP /MXNone" when no data is spooled, then re-starting with
a new "DMP /MXT" command.
The VDISK program supplied with DOS simulates a disk drive in
extended memory. VDISK always starts from the 1 Mb address and uses
as much as you tell it to. Some other ramdisks are available that can
use selectable portions of extended memory with higher start
addresses. DMP is selectable. To use extended memory for both a
ramdisk and DMP, you must command the two programs to use different
portions of memory.
Unlike expanded memory, there is no 'standard' for interfacing with
a ramdisk in extended memory. The spooler and ramdisk will have no way
of knowing that the other one is present, so you must inform both of
them correctly with commands.
EXTENDED MEMORY WITH THE XMM DRIVER
-the XMBLOCK program.
Install the program with "DMP /MXT". The command is the same as
for conventional extended, without numbers. Any parameters after the
command are ignored if the XMM driver is found.
If the HMA is available, DMP will use it and report it on the
summary. The HMA is permanently reserved for spooling if it is found.
Other extended memory being managed by the driver is allocated as
needed and released when done. The XMM driver and HMA memory are
discussed below.
-- Example --
In CONFIG.SYS:
...
DEVICE = HIMEM.SYS (or other XMM manager)
...
In AUTOEXEC.BAT, or enter from the DOS prompt:
DMP /MXT /other options as desired.
An XMM driver is a program that attempts to manage extended memory
in a similar fashion to that specified in the LIM standard for
expanded memory. DMP is compatible with the published specification
called XMS from Microsoft. The free (copyrighted) Microsoft driver
program called HIMEM.SYS is available on many BBS systems for anyone
with a 80286 CPU who would like to use it.
Note that XMM drivers are not compatible with VDISK, and will
refuse to load if VDISK is installed. They can be made compatible
with some other ramdisks by using the XMBLOCK program supplied with
DMP. This is only possible with ramdisks that can be commanded to
start above the HMA memory.
DMP 2.00 - page 15.
The 'proper' way to use extended memory for a ramdisk would be to
have the ramdisk program allocate what it needs through the XMM
driver. Unfortunately, there are no ramdisks that work with the XMM
driver as of this writing, since the specification is new. The
XMBLOCK program allows you to block off memory that has already been
taken by a ramdisk, without the XMM driver's knowledge. The remainder
of extended memory can then be managed by the XMM driver. XMBLOCK is
not a resident program - it uses no memory itself.
HMA MEMORY SPOOLING
The XMM specification and XMM drivers support a 'trick' memory area
on 80286 and 80386 processors called the HMA - High Memory Area. This
is shown on the diagram in figure 1.
DMP can use the HMA for spooling, but only through the XMM driver.
If the driver is present and reports the HMA available, it will be
used for spooling. The size of this area is 65520 bytes (64K - 16),
and it can be accessed quickly, so it is a good candidate for spooling
if you have no preferred use for it.
The HMA does not add anything to your available extended memory,
but it does allow access to it in a different way that is faster than
the standard method.
SPOOLING TO DISK
Select a disk drive for spooling with "DMP /Dx:" where x is the
drive to be used for spooling. You need the colon.
A disk drive may be selected when DMP is first installed or any
time later. The drive can be changed if there are no spool files
active. The command will work if there is data in the memory buffers,
as long as nothing is spooled to the disk.
You can stop disk spooling at any time with "DMP /DNONE". Any data
that is spooled to disk when this command is entered will continue to
print, but no new data will be added to the disk.
DMP is compatible with any disk recognized by DOS. A ramdisk is a
very good candidate for spooling because of it's speed. The time
taken by the spooler will usually not be noticeable with a ramdisk. A
hard disk is convenient for large print files. A floppy or any
removable disk is NOT recommended, as removing the diskette while the
spooler is operating can cause the system to crash. Also, the I/O is
very slow and will use noticeable portions of computer time while
printing.
DMP will create disk files with filenames $PSPOOL.nnn, where 'nnn'
ranges from '000' to '999'. The files may vary in size from 4K up to
32K bytes each if a lot of information is spooled. The files are
DMP 2.00 - page 16.
written as printer output is generated, then read and deleted when the
information is printed.
The spool files are written to the 'root' directory of the
designated drive. Subdirectories on a hard disk can be used via the
DOS 'SUBST' command. No filenames should be used on the system which
match the program's format. The files are not marked as 'hidden' or
'system', so they will show up in directory listings made while the
spooler is running. If the system is stopped or rebooted while the
spooler is running, extra files will be left on the disk. This will
not interfere with the operation of the spooler when it is reloaded,
but the files should be deleted to free up the disk space.
COMBINATION MEMORY AND DISK SPOOLING
- MORE EXAMPLES
Disk spooling can be done with extended and/ or expanded memory
spooling in any combination by the appropriate commands as shown
above. If all types of spooling are enabled, DMP will use them in the
following order:
1. Internal buffers (6K bytes).
2. HMA memory.
3. Expanded memory.
4. Extended memory via XMM driver if present, or via Bios if not.
5. Disk.
There are two basic advantages to using expanded or extended memory
for spooling instead of a disk.
1. Access is faster, so less CPU time is used by the spooler and
the printer still runs full speed.
2. It does not have any contention problems like DOS has when using
it for disk access. The Bios and both types of memory driver
programs can be called by the spooler without fear of 'running
into' your application software (spreadsheet, word processor,
etc.).
The disadvantage is that memory being used for spooling is of
course unavailable for any other programs. DMP allows you to make the
tradeoff as you desire.
DMP 2.00 - page 17.
Example 1: XMM driver with ramdisk & spooler
This is based on an 80286 computer with 2MB total memory. The XMM
driver is available. Desired memory use is 640K for DOS, 896K for
ramdisk, 512K for the spooler. In addition, the spooler will be
allowed to use the ramdisk if it fills the rest of memory.
In CONFIG.SYS:
...
DEVICE = HIMEM.SYS (Name of XMM driver)
DEVICE = FASTDISK.SYS /M=896 /EXTM=0,1088
(Name of ramdisk, with commands)
...
In AUTOEXEC.BAT:
...
XMBLOCK 896 (block off ramdisk portion)
DMP /MXT /DE: (spooler uses XMM driver and ramdisk E:)
...
In this example, the ramdisk program is commanded to start above the
HMA memory, and use 896K bytes. Use commands needed for your ramdisk.
The memory used by the ramdisk is then blocked off by XMBLOCK so the
driver will not allow it to be allocated. DMP then discovers the
driver available with 448K bytes that can be used when needed for
spooling, plus the HMA with 64K bytes.
Example 2: Expanded and extended with simulator
The hypothetical configuration is an 80286 cpu with 1MB of memory on
the motherboard plus an expanded memory board with 1.5MB. The XMM
driver is not used. Desired memory use is 640K for DOS, 1MB ramdisk,
remainder of expanded memory for applications and spooling as needed.
In CONFIG.SYS:
...
DEVICE = EMS32.SYS /options (name of EMM driver)
DEVICE = REX.SYS 768 (name of simulator)
DEVICE = VDISK.SYS 1O24 512 128 (install ramdisk)
...
In AUTOEXEC.BAT:
DMP /MXP
The EMM driver is installed, the simulator is told to take 768K of
expanded memory and use it as extended memory, and the ramdisk is told
to use all the extended memory (384K + 768K). DMP then finds the
expanded memory available to be 896K bytes, and will share it with
application programs as needed.
DMP 2.00 - page 18.
DRIVER CONTROL COMMANDS AND OPTIONS
The type of output that is spooled and printed is controlled by the
following commands.
Graphics/binary mode on/off:
DMP /G+ or DMP /G-
Send/don't send auto line-feeds:
DMP /L+ or DMP /L-
Printer has/doesn't have auto line feed:
DMP /A+ or DMP /A-
Allow/don't allow line-feeds from application:
DMP /U+ or DMP /U-
Printer has/doesn't have form-feed function:
DMP /F+ or DMP /F-
Physical page length is 'nn':
DMP /Pnn
Lines of text before auto form-feed:
DMP /Vnn
Set left margin to 'x' spaces:
DMP /Mx
Tab expansion on/off:
DMP /T+ or DMP /T-
Reset or clear all tab stops:
DMP /TR or DMP /TC
Set/clear tab stops at 'aa'/'bb':
DMP /Taa+,bb-
Jam literal character string to printer:
DMP /C<char string>
Convert an escape sequence:
DMP /E<char string>=<char string>
Convert a control character or group of hi-bit characters:
DMP /Xnn=<char string>
Show character conversions in effect:
DMP /LIS
The descriptions for all these commands follow.
DMP 2.00 - page 19.
PRINTER CONTROL
DMP /G+ and DMP /G- commands:
Graphics/binary print mode on/off.
The "/G+" command turns off all character conversions. It will also
speed up the output to a parallel port. The "/G-" command restores
character conversions to their previous state.
This command is useful to allow bit image graphics printing for
dot-matrix printers after some character conversion options have been
selected. The options can later be re-enabled with "/G-".
This command is also useful for speeding up output to the printer
for graphics or any other type of printing. The faster printing may
cause some slowdown in computer response, or possibly some lost
characters on some printers when printing normal text. The only
recommendation that can be given for this command is to experiment
with your printer.
DMP /L+ and DMP /L- commands:
Instruct DMP to send, or stop sending, line feeds to the printer
after each carriage return.
'/L+' causes line feeds to be added, '/L-' removes the effect of'/L+'.
This can be used to force double spacing or in conjunction with a
print program that does not send line feeds, causing a "black bar" to
be printed on one line. It is usually not needed.
Line feeds are not added in graphics '/G+' mode.
DMP /A+ and DMP /A- commands:
Inform program whether printer has auto line-feed.
The "/A" option does not change the character conversion functions,
but allows DMP to count the number of lines that the paper has
advanced in order to generate the form feed function. The program
should always be properly set to match the printer's operation. If
the printer does have automatic line feed, the preferable choice is to
disable this function on the printer. If it isn't or can't be
disabled, add the '/A+' command when DMP is installed. The '/A-'
command resets to the default state.
DMP /U+ and DMP /U- commands:
Allow or suppress line feeds after carriage returns.
This command refers to characters which are being sent from an
application program to the printer. '/U-' inhibits line feeds after
carriage returns; '/U+' reverts to default state. It can sometimes
be used to force single-spacing when the program is printing double-
spaced. It can also be used together with /A and /L to force a
DMP 2.00 - page 20.
consistent print format from a variety of programs which use different
line spacings.
Line feeds are not inhibited in graphics '/G+' mode.
DMP /F+ and DMP /F- commands:
Inform DMP whether the printer has form-feed capability.
'/F+' (default state) tells DMP to pass form feeds to the printer,
and to use form feeds when needed. '/F-' causes the form feed
function to be simulated by adding line feeds to the end of the
physical page length set by the '/P' option. The program should be
set to match the printer.
Form feed characters are not converted in graphics '/G+' mode.
DMP /Pnn command:
Set physical page length.
'nn'=number of lines per page, 5 to 99.
This command informs DMP of the number of lines (printer line feeds)
on a page. 66 lines corresponds to 6 lines per inch, 11 inch paper.
The program should be correctly informed if the page length is
different. This number is used by the program for the form feed
function and the 'skip perforation' function. See the '/V' command
below. The page length might be changed for graphics mode or an
unusual page layout.
Entering this command with no numbers will cause the program to
display the current setting. Entering this command at any time causes
the program to be set to 'top of form', with nothing sent to the
printer.
DMP /Vnn command:
Set text length - number of lines to print per page.
This command is used in conjunction with '/P', above, to tell the
program when to advance to the next page during continuous printing.
In the default state, the printer will not skip lines for the perfor-
ation, since the text length is set longer than the physical page
length. To enable this function, set the text length to one or more
lines less than the page length with this command.
Entering this command with no numbers will cause the program to
display the current setting. Entering this command at any time causes
the program to be set to 'top of form', with nothing sent to the
printer.
No perforation skip or automatic form feed functions take place
when the driver is in graphics '/G+' mode, regardless of the settings
for page and text length.
DMP 2.00 - page 21.
Example: DMP /P84/V85
-Set printer to 84 lines per page (14 inch paper). Disable 'skip
perforation' function.
DMP /Mx command:
Set left margin.
x is a decimal number from 0 to 99.
This command allows a left margin or indent to be added to
printouts. The number of spaces entered as 'x' will be added to each
line. "DMP /M0" removes the margin. No left margin is added in
graphics '/G+' mode.
If any left margin has been selected it will be shown on the
summary display.
DMP /T+ and DMP /T- commands:
Tab expansion function ON/OFF. The defaults are tab stops at every
8 positions, expansion off.
/T+ enables tab expansion, /T- disables it. Any tab characters
received will advance the print position to the next tab stop set.
Refer to the other '/T' commands below for setting tab stops. Tab
expansion should be disabled if the printer includes tab stops and you
want to use this feature. Since DOS and most word processors include
tab expansion, this feature will not usually be needed. It is useful
when copying disk files which include tabs directly to the printer, or
if you want to set your own custom tab stops.
No tab expansion occurs in graphics '/G+' mode.
DMP /TR command:
Reset tab stops to every 8 positions. Removes any tab stops set by
other '/T' commands. Sets a tab stop at every 8 positions.
DMP /TC command:
Clear all tab stops.
Useful before resetting tabs to a new format.
DMP /Taa+,bb+,... or DMP /Txx-,yy-,... commands:
Add or remove tab stops at column positions.
'aa','bb',...=column numbers to add tab stops.
'xx','yy',...=column numbers to clear tab stops.
The column numbers followed by '+' or '-' may be intermixed to set
up a complete tab format.
DMP 2.00 - page 22.
Example:
DMP /TR/T+/T41-,43+,57-,64+,65-,69+,73-,75+,81-,82+
(Enter this entire command on one line.)
Resets tabs to every 8 columns, i.e. columns 9,17,25,..., enables
tab expansion, then clears tab stops from columns 41, 57, 65, 73,
81 and adds tab stops at columns 43, 64, 69, 75, 82.
CHARACTER STRINGS IN COMMANDS
The next 4 commands require entry of character strings for output or
conversion. This is shown as: <char string>.
A character string may be entered on the command line as either a
quoted string, like: "Abc" or a series of decimal numbers like:
65,98,99. If more than one of these is needed, separate them by
commas. 5 examples of valid strings are:
"XYZ" 13,10 27,"W",65,66 "Test" "abc",13,10
DMP /C<char string> command:
Send character or control code string to printer. See the
description of character strings above.
This command jams characters directly to the printer, at the output of
the spooler. It is useful for resetting the printer to a desired
state on startup, or for changing pitch, etc., especially from a batch
file. Refer to your printer manual for codes needed. This command
sends characters to a printer only, not to a disk file.
Example: DMP /C27,"U"
-Send 'Esc,U' to printer.
CHARACTER CONVERSIONS
DMP /E<char string> = <char string>, or
DMP /E<char string>-,or
DMP /E<char string>+ commands:
Convert or inhibit an 'escape' sequence. Remove conversion or
inhibit for a sequence. See the description of character strings
above.
These commands allow conversion of control sequences beginning with
the 'Escape' character (ASCII 27, Hex 1B). If a number of these
conversions are set up, the control sequences for one printer can be
substituted for another.
The first syntax causes the sequence on the left of the '=' to be
replaced by the one on the right of the '=' before being sent to the
printer. The '-' (minus) option inhibits the escape sequence from
being sent to the printer. The '+' (plus) option removes previous
conversions or inhibits for this sequence.
DMP 2.00 - page 23.
The limitations are as follows: A total of 64 sequences may be
converted or inhibited at one time. Each sequence may consist of up
to 20 characters for both the input and output strings. (40 char-
acters total.) The total number of characters in all conversion
sequences is limited to 512. Sequence conversion is not recursive.
The converted sequences are sent directly to the printer without
passing through the converter again.
The escape character is implied in the command. Do not include it
after the '/E'. The escape character is NOT implied in the 'to'
sequence. Escape sequences may be replaced by any other sequence.
No escape sequence conversions take place in graphics '/G+' mode.
Example: DMP /E"W"=27,"E" /E"&"=27,"F"
Convert the sequences 'EscW' and 'Esc&' to 'EscE' and 'EscF'. This
would convert the Diablo 630 bold on/off functions to the cor-
responding Epson functions.
DMP /Xnn=<char string>, or
DMP /Xnn=- or DMP /Xnn=+ commands:
Convert or inhibit a control character. Remove inhibit from a
control character.
'nn'=decimal code for the character to be converted. See the
description of character strings above.
'nn=-' inhibits this character from being sent to the printer.
'nn=+' removes previous conversion or inhibit for this character.
Control characters can be converted or blocked from being sent to
the printer with these commands. Valid control characters for this
command are ASCII codes 0 thru 31, except Tab(09), CR(13), LF(10),
FF(12), and Escape(27).
The single control character is replaced by the string before being
sent to the printer, or it is blocked from being sent.
This function can be used for a limited amount of conversion of
commands for one printer to commands for another, or to block printer
commands from a word processor or other program that refuses to
cooperate.
Any conversions remain in effect when printer output is redirected
between serial and parallel printers. No conversions or character
inhibits take place in graphics '/G+' mode.
Examples:
DMP /X15="x" Convert ^O to lower case 'X'.
DMP /X23=- Prevent ^U from being sent to the printer.
DMP 2.00 - page 24.
DMP /Xnnn=<char string> command:
Convert a Hi-bit Ascii character or group of characters by entering
data in the conversion table. 'nnn'=decimal code for a hi-bit
character. See the description of character strings above.
The character string of one or more characters is entered in the
conversion table starting at the specified character 'nn'.
Hi-bit ASCII characters are those with codes greater than 127. For
these characters, each one is replaced by one character from a
conversion table before being printed. The startup state of the table
maps each character to itself, so no conversions take place unless you
enter them. A group of conversion table entries is entered with this
command by specifying the starting character, 'nnn' in the above
syntax, then entering the character string.
Although the syntax is the same for control characters (above) and
hi-bit characters, the commands are interpreted differently. No hi-
bit character conversions will take place in graphics '/G+' mode.
The hi-bit conversions can be used to make your printer display the
IBM box-drawing characters, math symbols, etc. that show on the
display, if the printer uses a different set of characters.
If you enter any hi-bit conversions into the table with this
command, it is a very good idea to save the configuration with the
"/WCF" command so you won't have to enter them again. See the
"Configuration File" section later in this document for more details.
DMP /LIS command:
Display all control character and escape sequence conversions in
effect.
Causes the driver to display a table of all conversions in effect.
The table is displayed when any conversion commands are entered. This
command permits checking the table without changing any entries.
A typical display is as follows:
Escape sequence conversions:
50 -Inhibited-
69 27,31,32,32
70 27,32,32,32
98,111,120 27,28,32
101,98,120 27,54,32
Control characters:
15 -Inhibited-
18 -Inhibited-
The numbers on the left show the characters for which conversions
are in effect. Those on the right show the outputs, or inhibited
status.
DMP 2.00 - page 25.
SPOOLER CONTROL
The following commands give you precise control over the spooling
functions in DMP. They are primarily useful for error recovery
situations. These commands may only be entered after the program is
installed - on the second and subsequent invocations.
DMP /SK Command:
Cancel printing. Flush buffered printer data.
Deletes any spool files from disk. Empties any memory buffers.
Printing stops, but spooler operation continues normally after reset.
All data that was spooled to be printed is lost. Useful for paper
jam, printer malfunction, wrong setup, etc.
If printer output has been set to a disk file, this command does
not delete the disk file or stop the output.
DMP /S- command:
Stop spooler output to printer.
Turns off output to printer. Spooler continues to function,
generating printer output data to memory and/or disk if needed.
Output can be re-enabled from the point where it was stopped with the
'/S+' command. Useful for spooling output for printing later,
changing printer paper, etc.
If printer output has been redirected to a disk file, this command
affects only data which is still spooled for the printer, if any.
Output continues to go to the disk file.
Example:
DMP /S-
-Spooler output is turned off temporarily.
DMP /S+ command:
Restart spooler output after '/S-' or '/SB'. Turns on output to
printer after it has been turned off with '/S-', or bypassed with
'/SB'.
No effect if the output is already on.
DMP /SB Command:
Bypass spooler function.
This command bypasses spooler and driver operation for all subsequent
printing. All printer output is sent thru BIOS. The program is re-
enabled by the '/S+' command. If printer output was directed to a
disk file, it will stop going to the file until re-enabled by the
'/S+' command.
DMP 2.00 - page 26.
MISCELLANEOUS
DMP /NV command:
Suppress all messages when commands are executed.
DMP displays normal messages through DOS to "standard output", error
messages to "standard error". This command turns off all message
output (except copyright notice when installing). It suppresses both
normal and error messages.
If you want to suppress only normal messages and still display
errors, you can run DMP as DMP/options... >NUL. This causes DOS
standard output to be redirected to "nul" - not displayed.
This command can be used when another program calls DMP via the DOS
'exec' function. DMP will return error level 0 if no errors occur,
error level 2 otherwise. This command does not turn messages off
permanently. It must be entered at the beginning of the command line
any time messages are to be inhibited.
USING THE ENVIRONMENT VARIABLE
DMP will read memory spooling commands from a DOS environment var-
iable when it is being installed, if desired. The variable should be
entered with the 'SET' command as:
SET DMP = /options.
'options' can be memory commands "/MXP", "/MXT..", "/MXALL.." for
selecting expanded or extended memory or both for spooling. DMP will
look for the "DMP=" environment variable when installing only.
The use of the environment variable is optional, and the program
will execute command line selections whether the environment variable
is used or not.
USING THE CONFIGURATION FILE
The configuration file was mentioned in section 7 above. It is a
very convenient way to set up a complex set of options without having
to remember a lot of commands, and without needing a batch file.
When DMP is installed, it looks for a file named DMP.CFG which
holds the selections for most of the options. If this file is not
found, all the default parameters are used. The command to save the
file is "DMP /WCF". It stands for "Write Configuration File".
Once you have stored the configuration, you do not need to re-enter
your options every time you use DMP. The basic options that are saved
include the printer port, type of memory and/or disk spooling selected
and all the character conversion and page formatting options.
DMP 2.00 - page 27.
You can change option settings and re-write the new options with
another /WCF command at any time. It is a good idea to do this as you
'fine tune' the settings for a printer/computer combination.
You can go back to the last saved option settings by entering
"DMP /RCF" after installing DMP. This is useful if you have changed
the options and then decide you liked them better the way they were.
The DMP.COM file may be renamed if desired. Under DOS 3.0 or
later, DMP looks for a configuration file with it's own name and the
extension ".CFG". Under all versions of DOS 2, it uses file "DMP.CFG"
in the current directory. This is only important if you rename the
DMP.COM file or if you install DMP from different directories each
time under DOS 2.
There are only two options that are not saved with the
configuration file:
1. Printing to a disk file.
2. Program in graphics/binary mode or bypassed with the "/G+" or
"/SB" commands.
DMP AND WORD PROCESSORS
DMP works well with all types of word processors. This section
gives you a few tips for getting the most from your word processor and
DMP at the same time.
If your word processor does not support your printer, you can use
some of the escape sequence and character control functions in DMP to
get page formatting on your printer to match one that your word
processor does support. This can be a tedious process, but it may
still be better than buying a new printer!
If your word processor supports your printer and drives it normally
- thru the system BIOS or DOS - you get maximum benefits from both
programs. DMP should usually be put in "/G+" mode while using the
word processor.
If you have a serial port printer, set up DMP with the "/SC"
command and the proper settings for your serial port. Do not use the
DOS "MODE" command. It is sometimes necessary to tell your word
processor to print to "PRN" or "LPT1" to get it to spool through DMP.
Experimenting with a single page printout should tell you if the
settings are correct.
If your word processor supports your printer and drives the PC's
hardware directly, you may not know it. Try printing a page or two
with DMP installed, and see if the system is returned to you right
away while the printer is printing. If so, the spooler is working.
If not, the word processor is driving the printer directly. A number
of "high-end" word processors and desktop publishing programs will do
this. For this type of program, you should set DMP to match your
hardware, and of course do not try to print from DMP and the word pro-
DMP 2.00 - page 28.
cessor at the same time. You still get the features of DMP for
printing from other programs, printing disk files, etc. You should
also get all the features of your word processor with no conflicts.
TECHNICAL DESCRIPTION
This section provides some detailed information on how the DMP
program works. Read it if you are interested, or if you are having
problems getting started. The commands are described in detail in the
previous sections.
HOW COMMANDS ARE INTERPRETED.
When DMP is installed, it reads the configuration file before any
commands that you enter at the DOS prompt. This means you can over-
ride any of the settings in the file with commands if you want to.
The commands for selection of spool buffers, output port, and all
character conversions may be entered in any order. The program reads
them in the order desired, and ignores conflicting commands.
DETAILS OF PROGRAM OPERATION.
DMP is a "generic" printer driver, not configured for any specific
make or model of printer. Use of the character and escape sequence
conversions, serial port redirection and several other options will
almost certainly require a thorough understanding of the printer
manual for the printer that is to be used. Referring to that document
at the same time as the command options given here should allow the
program and printer to work together harmoniously, though the process
may take some time.
DMP only works with the 'primary' printer on a system, designated
'PRN' by DOS. It can work with more than one printer on a system, one
at a time, as explained above.
When the computer is turned on, the BIOS finds the parallel printer
by sending signals to each of the 3 possible port addresses, in a
specific order. The first port that responds becomes "LPT1" or "PRN"
for DOS. If a second port responds, it becomes "LPT2". Thus the BIOS
designations don't correspond to a specific hardware setup. DMP will
use the one BIOS finds if you don't specify otherwise in a "/B"
command, but doesn't necessarily use the same naming convention. The
port addresses used are listed under the "/B" command.
DMP functions by intercepting the BIOS software printer interrupt
(17hex), converting characters as needed, and sending the resulting
output to the spooler. The spooler saves the data as it is received,
then sends it to the printer by driving the parallel or serial port
directly, or sending printer output to a disk file.
DMP 2.00 - page 29.
Calls to INT 17H which are for a printer other than the primary one
are 'chained' to the previous vector. The spooler also intercepts the
timer interrupt, calls the previous owner of the timer, then checks
for any printer functions needed. If the printer is redirected to a
COM port, the hardware interrupt for that port is also used, and the
use of the timer interrupt is reduced.
The timer interrupt is also used to time out the print-to-file
function after a few seconds of no activity.
DMP also uses DOS software interrupts 21H and 28H to get access to
DOS for disk read and write functions.
The character and escape sequence conversion functions use internal
conversion tables. The hi-bit characters are converted from a simple
128 byte lookup, which is initialized to all the same characters. The
escape sequence conversions use a separate 512 byte buffer for the
conversion strings. The strings are sorted when they are entered, and
compared using a binary search when being received. This puts as much
of the complexity as possible in the non-resident portion of the
program.
Of the system memory used for DMP, about 6K bytes is program code
and internal data. Seperate buffers are used for input and output
with 6K bytes total in the default configuration. An internal stack
is used when needed during timer ticks.
A large amount of the code in DMP is for error handling. The basic
approach is that if the spool buffers fill, but the printer is still
printing, wait about 90 seconds for the output buffer to empty. If it
doesn't empty, return an error to the program that is printing.
Contention for access to the disk presents a more complex problem.
DMP will sense a "deadlock" condition if one arises, and again return
an error to the caller. The use of expanded or extended memory for
spooling helps avoid such problems.
The "Print-to-disk" option uses the input data buffer. The buffer
is written to the disk file when it reaches half of the input buffer
size, as soon as DOS is available for the disk write function. If the
buffer fills up and DOS is not ready, the information for the file
will be written to memory buffers if any are available. If there is
nowhere else to go, an error return is given to the program that is
printing. DMP will not "throw away" data if the disk is not
available. The buffer will also be written to the disk after an 8
second (approx.) timeout if nothing has been output to the printer.
DMP 2.00 - page 30.
DMP COMMAND SUMMARY CHART
Function Default Select(DMP/..)
Printer output:
Set printer output to parallel port #n. BIOS Bn
Set default parallel port Bios port B
Printer output to serial port x, bit Parallel SCxRyy
rate yy, Wait for abc (CTS,DSR,DCD) CTS Wabc
Printer output to filename: Parallel PFfilename
-Append to file if it exists AFfilename
-Overwrite file if it exists OFfilename
Spooler control:
Set internal buffer size to nn Kbytes 6K MX:nn
Use expanded memory for spooling None MXP
Use extended memory for spooling, None MXT xxx yyy
use xxxK bytes, start at yyyK over 1MB
Use expanded and extended memory, None MXALL xxx yyy
use xxxK bytes, start yyyK over 1MB
Turn off expanded/extended memory usage MXNONE
Spool to disk drive X. None DX:
Turn off disk spooling DNONE
Spool output OFF (temp) ON S-
Spool output ON, after /S-. ON S+
Cancel printing. Flush buffers/files. SK
Bypass spooler. Pass chars to BIOS. SB
Printer control:
Graphics/binary mode printing ON,OFF. OFF G+,G-
Send,No send LF to printer after CR. *No send L+,L-
Printer does/doesn't auto LF on CR. Doesn't A+,A-
Allow,Suppress LF after CR from user. *Allow U+,U-
Printer does/doesn't have form feed. *Does F+,F-
Set physical page length (paper length)* 66 lines Pnn
Set text length for auto FF (skip perf)* 70 lines Vnn
Set left margin. nn=0 to 99 *No margin Mnn
Tab expansion ON,OFF *OFF T+,T-
Reset tabs to every 8 positions Reset TR
Clear all tab stops 8 spaces TC
Add tab stops at columns aa,bb,... 8 spaces Taa+,bb+,
Remove tab stops at aa,bb,... " " Taa-,bb-,
Character conversions:
Send char. string to printer C<char seq>
Convert control char nn to string <char seq>
up to 5 chars., 0 to 31, not Tab,CR,LF,FF,esc.* Xnn=<char seq.>
Inhibit sending control char. nn * Xnn=-
Remove inhibits/converts for char. nn * Xnn=+
Enter conversion chars in hi-bit table * Xnnn=<char seq.>
Convert escape sequence <seq 1> * E<seq 1>=
-replace with <seq 2> * <seq 2>
-remove conversions * E<seq 1>+
-inhibit sequence * E<seq 1>-
Display all conversions in effect * LIS
Other:
Non-verbose mode (no messages) msgs on NV
Save configuration file WCF
Read configuration file RCF
*DMP makes no conversions for these options with graphics mode ON.*
DMP 2.00 - page 31.
REGISTRATION AND ORDERING
There is only one current version of DMP - there are no "demo" or
"crippled" versions. The programs are updated from time to time,
however. You will receive the latest version when you register.
You can also order DMP from the Public (Software) Library at 1-800-
2424-PSL (orders only; for information call 1-713-665-7017) or by
writing to:
PSL
P.O.Box 35705
Houston, TX 77235-5705
MC/Visa Accepted.
User support is available from the author on CompuServe via PPN
73210,2531. Your questions will be answered within 48 hours, usually
much quicker. If you do not have access to CompuServe, please write
to DMP software at the address above.
The author of this program is a member of the Association of
Shareware Professionals (ASP). The ASP has established stringent
standards for both its Members and any organization which has 'ASP
Approved' status. ASP wants to make sure that the shareware principle
works for you. If you are unable to resolve a problem with either a
ASP Member or organization (other than technical support), ASP may be
able to help. Please write to:
ASP Ombudsman
P.O. Box 5786
Bellevue, WA 98006
Or send a CompuServe message via easyplex to
ASP Ombudsman 70007,3536
---------------------------------------------------------------------
DMP ORDER FORM
The registration fee for one copy of DMP is $18. California residents
add sales tax for your county. Mail this completed form to:
DMP Software
1223 Wilshire Blvd., Suite 199
Santa Monica, CA 90403
You will receive the latest version of the program on 5.25" disk.
Name:__________________________________________
Company:_______________________________________
Street Address:________________________________
City:___________________State:______ZIP:_______
Number of copies___ x $18 $_____.___
Sales tax (CA) _____.___
Total enclosed: $_____.___
---------------------------------------------------------------------
The remainder of this form is for more than 5 copies of DMP, or a site
license. Fill out the name and address portion above, and mail your
check for the desired number of copies. If you are ordering more than
10 (ten) copies, you will receive a site license agreement along with
the latest version of DMP. If you would like a site license agreement
only, mail a request to the above address.
Number of copies: Price per copy:
==============================================
5 - 25 $10.00
26 - 100 $ 7.50
101 and up $ 2.00
($1000.00 maximum for one location).
Total enclosed: $______.___
Authorized signature: Title:
______________________________ _____________________________
---------------------------------------------------------------------
LaserZ ORDER FORM
Mail this completed form to:
DMP Software
1223 Wilshire Blvd., Suite 199
Santa Monica, CA 90403
You will receive LaserZ on 5.25" disk with complete, printed manual.
ANY AMOUNT THAT YOU HAVE PAID FOR REGISTRATION OF THIS OR ANY EARLIER
VERSION OF DMP (SINGLE COPY) MAY BE DEDUCTED FROM THE PRICE FOR
LASERZ.
Name:__________________________________________
Company:_______________________________________
Street Address:________________________________
City:___________________State:______ZIP:_______
Number of copies___ x $32 ($29 + $3 s&h) $_____.___
Sales tax (CA) _____.___
Total enclosed: $_____.___
---------------------------------------------------------------------